home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
cmln1285.arc
/
PARSER2.LTG
< prev
next >
Wrap
Text File
|
1986-02-27
|
1KB
|
37 lines
Listing 2 á
TWS Lexical Grammar for Prolog
scanner Prolog_text:
Prolog_text -> (Pseudo | Separator)*;
Pseudo áá-> Variable | String | Symbol | Number;
Separator-> Punctuator | Spaces | Eol;
Variable ááá-> Varhead (Letter | Digit)* áááááá=> '<VARIABLE>';
Varhead á-> (Uppercase | Underscore);
Letter áá-> Uppercase | Lowercase;
Uppercase-> 'A' .. 'Z';
Lowercase-> 'a' .. 'z';
Digit ááá-> '0' .. '9';
Underscore-> '_';
String ááááá-> (Quote Chars Quote)+ ááááááááááá=> '<ATOM>';
Quote ááá-> '''';
Chars ááá-> (Any - Quote)*;
Symbol ááááá-> Lowercase (Letter | Digit)* áááá=> '<ATOM>' ;
Number ááááá-> '-'? Digit+ áááááááááááááááááááá=> '<NUMBER>';
Punctuator á-> '(' | ')' | ',' | '[' | ']'
| '.' | '|' | ':' '-' áááááááááá=> '<AS_IS>';
Spaces ááááá-> Space+ ááááááááááááááááááááááááá=> '<DELETE>';è Space áááááá-> ' ' | Tab;
Tab ááááá-> 'ht';
end Prolog_text